09. Solution: Boolean Expressions for Conditions
Quiz Solution: Evaluate composed boolean expressions
altitude < 1000 and speed > 100
altitude < 1000 is False, so we don't even need to check the second condition - the whole expression is False.
(propulsion == "Jet" or propulsion == "Turboprop") and speed < 300 and altitude > 20000
propulsion == "Jet" is False, and propulsion == "Turboprop" is False, so the whole expression inside the parentheses is False. It is combined with the other expressions with and, so we don't even need to check these - the whole expression must be False because the first part is False.
not (speed > 400 and propulsion == "Propeller")
To work this one out, we need to look at the inside of the parentheses first, then apply not to that. speed > 400 is False, and because we are using and this makes the whole of the expression inside the parentheses False. Applying not reverses this, so this expression is True.
(altitude > 500 and speed > 100) or not propulsion == "Propeller"
Let's start by looking inside the parentheses. altitude > 500 is True, and speed is greater than 100, so the expression inside the parenthesis is True. Whatever the value of the other expression, because they are connected by or, the whole expression will evaluate to True.
Quiz Solution: Using Truth Values of Objects
points = 174
points = 174 # use this input when submitting your answer
# set prize to default value of None
prize = None
# use the value of points to assign prize to the correct prize name
if points <= 50:
prize = "wooden rabbit"
elif 151 <= points <= 180:
prize = "wafer-thin mint"
elif points >= 181:
prize = "penguin"
# use the truth value of prize to assign result to the correct message
if prize:
result = "Congratulations! You won a {}!".format(prize)
else:
result = "Oh dear, no prize this time."
print(result)
Output
Congratulations! You won a wafer-thin mint!
We first set prize to None and then update it only if falls into a bracket that results in winning a prize. This is accomplished in the first if statement. We then use the truth value of prize to assign result to a message based on whether a prize was won.
Remember when prize = "penguin", or any other non-empty string, then the if prize condition is True!